const { DataTypes } = require('sequelize');
const seq = require('../db/seq'); // 数据库连接实例

// 创建好友关系表模型（Friendship 表）
const Friendship = seq.define(
    'Friendship',
    {
        id: {
            type: DataTypes.UUID,
            defaultValue: DataTypes.UUIDV4,  // 生成 UUID
            primaryKey: true,
        },
        userId: {
            type: DataTypes.UUID,
            allowNull: false,
            references: {
                model: 'users', // 关联 User 表
                key: 'user_id',
            },
            onDelete: 'CASCADE', // 删除用户时删除好友关系
            comment: '发起好友请求的用户ID',
        },
        friendId: {
            type: DataTypes.UUID,
            allowNull: false,
            references: {
                model: 'users', // 关联 User 表
                key: 'user_id',
            },
            onDelete: 'CASCADE', // 删除好友时删除关系
            comment: '好友的用户ID',
        },
        status: {
            type: DataTypes.INTEGER,
            defaultValue: 0, // 0已关注(对方未关注)  1: 已关注(我方取消关注 对方还在关注)  2:相互关注   -1:状态都为未关注
            allowNull: false,
            comment: '好友关系状态',
        },
    },
    {
        indexes: [
            {
                unique: true, // 保证同一对用户之间的关系唯一
                fields: ['userId', 'friendId'],
            },
        ],
        timestamps: true, // 自动生成 createdAt 和 updatedAt
    }
);

// Friendship.sync({ force: true })
module.exports = Friendship;
